from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
import sqlite3
import datetime,BaseHTTPServer
import threading
import thread
import time 
import smtplib 

server = SimpleXMLRPCServer(("localhost", 8000),allow_none = 1,
                            requestHandler=SimpleXMLRPCRequestHandler)
server.register_introspection_functions()#fonction qui enregistre le fait qu'il peut fournir cette fonction en reponse a qqchose
 


class ConnecteurDb(object):
    def __init__(self):
        self.connection = ""
        self.curseur= ""
        self.sqlString=""
        self.sqlData=[]
        
    def ouvrirConnection(self):
        self.connection = sqlite3.connect("ExpoTechno.sqlite")
        self.curseur=self.connection.cursor()
        
    def fermeConnection(self):
        self.curseur.close()
        self.connection.commit()
        self.connection.close()

    def sqlExecute(self,monsql):
        print 'monsql:'+monsql
        self.curseur.execute(monsql)
        
class ControleurServeur:
    def __init__(self):
        self.DB = ConnecteurDb()
        self.reponse= "NOT QUERY"

    def ouverture(self):
        self.DB.ouvrirConnection()
        return self.reponse
    
    def execute(self,chaine):
        self.DB.sqlExecute(chaine)
        self.reponse = self.DB.curseur.fetchall()
        return self.reponse
    
    def fermeture(self):
        self.DB.fermeConnection()
        return self.reponse    
    
    def comOracleNotQuery(self,chaine):
        self.DB.ouvrirConnection()
        self.DB.sqlExecute(chaine)
        self.DB.fermeConnection()
        return self.reponse
    
    def comOracleQuery(self,chaine):
        self.DB.ouvrirConnection()
        self.DB.sqlExecute(chaine)
        self.reponse = self.DB.curseur.fetchall()
        self.DB.fermeConnection()
        return self.reponse
         
server.register_instance(ControleurServeur())

#Demarrer la boucle du serveur
print "Demarrer"
server.serve_forever()

print "Arreter"


